class Solution:
    """
    方法：双指针法

    逻辑:
    使用两个指针分别指向字符串s和t的起始位置。遍历字符串t，当t中的字符与s中的字符相同时，
    移动s的指针。如果s的指针移动到了s的末尾，说明s是t的子序列，返回True。否则，遍历结束后返回False。

    Args:
    s (str): 可能是子序列的字符串。
    t (str): 目标字符串。

    Returns:
    bool: 如果s是t的子序列，返回True；否则返回False。

    Time: 
    O(n)，其中n是字符串t的长度。每个字符在t中最多被访问一次。

    Space: 
    O(1)，只使用了常数级的额外空间。
    """
    def isSubsequence(self, s: str, t: str) -> bool:
        if not s: return True
        i = 0
        for c in t:
            if s[i] == c:
                i += 1
                # 若已经遍历完 s ，则提前返回 true
                if i == len(s):
                    return True
        return False

        